package com.qumitech.visualnovel.service.gamerecord;

import java.util.*;
import com.qumitech.visualnovel.model.dao.console.GameRecordDO;
import com.qumitech.visualnovel.model.dao.app.UserGamingWishBottleStatisticsDO;
import com.qumitech.visualnovel.pubdef.dto.game.GameDailyDataDTO;
import com.qumitech.visualnovel.model.dao.console.MuchangwuyuDO;
import com.qumitech.visualnovel.model.dao.app.UserGamingMuchangwuyuStatisticsDO;
import com.qumitech.visualnovel.model.dao.console.MuchangwuyuTermDO;
import com.qumitech.visualnovel.model.dao.console.UserPropExchangeDO;

public interface GameRecordService {

    int getDetailListCount(String tableName, String uid, String minRewardDiamonds,
                String maxRewardDiamonds, String logType, String startTime, String endTime);

    List<GameRecordDO> getDetailList(String tableName, String uid, String minRewardDiamonds,
                String maxRewardDiamonds, String logType, String startTime, String endTime,
                String orderType, String orderBy, int offset, int limit);

    int countDaily(String uid, String minGamingDiamonds, String maxGamingDiamonds,
                   String gameType, String startTime, String endTime);

    List<GameDailyDataDTO> listDaily(String uid, String minGamingDiamonds,
                                     String maxGamingDiamonds, String gameType, String startTime, String endTime,
                                     String orderType, String orderBy, int offset, int limit);

    int getGameStatisticListCount(String gamingType, String uid, String minGamingDiamonds, String maxGamingDiamonds,
                                  String startTime, String endTime);

    List<UserGamingWishBottleStatisticsDO> getGameStatisticList(String gamingType, String uid,
                                                                String minGamingDiamonds, String maxGamingDiamonds, String startTime,
                                                                String endTime, String orderType, String orderBy, int offset, int limit);

    List<HashMap<Byte, String>> getTermGameRewardItemOptions(String gamingType);

    int getTermGameDetailCount(List<String> tableList, String uid, String rewardItem, String startTime, String endTime);
    List<MuchangwuyuDO> getTermGameDetailList(List<String> tableList, String uid, String rewardItem, String startTime,
                                              String endTime, int offset, int limit);

    int getTermGameStatisticCount(String gamingType, String uid, String startTime, String endTime);
    List<UserGamingMuchangwuyuStatisticsDO> getTermGameStatisticList(String gamingType, String uid, String startTime, String endTime,
                                                                     int offset, int limit);

    int getTermGameRewardInfoCount(String gamingType, String termId, String itemType, String startTime, String endTime);
    List<MuchangwuyuTermDO> getTermGameRewardInfoList(String gamingType, String termId, String itemType,
                                                      String startTime, String endTime, int offset, int limit);
    Map<String, Long> getTermGameRewardInfoTotal(String gamingType, String termId, String itemType, String startTime, String endTime);

    int getMuChangWuYuExchangeCount(String uid, String originType, String originId,
        String toPropType, String toPropId, String startTime, String endTime);
    List<UserPropExchangeDO> getMuChangWuYuExchangeList(String uid, String originType, String originId,
        String toPropType, String toPropId, String startTime, String endTime, int offset, int limit);

}
